package fr.thelem.gestiondemandesthelem.web.actions;

import java.util.Collection;
import java.util.List;

import fr.thelem.gestiondemandesthelem.dao.model.CDDemandeEntity;
import fr.thelem.gestiondemandesthelem.dao.model.CPDemandeEntity;
import fr.thelem.gestiondemandesthelem.dao.model.CPPointDeControleEntity;
import fr.thelem.gestiondemandesthelem.dao.model.CommentairesEntity;
import fr.thelem.gestiondemandesthelem.service.IAppliService;

public class ConsultationDemandeAction extends BaseAction {

    /** Attribut serialVersionUID */
    private static final long serialVersionUID = -9182069118737661089L;

    /**
     * {@inheritDoc}
     */
    private String idDemande;
    private CPDemandeEntity CPDemande;
    private CDDemandeEntity CDDemande;
    private CPDemandeEntity CPDemandeWithEtape;
    private IAppliService appliService;

    private Collection<String> listeTypeDemandes;
    private String type;

    private String NomDemande;
    private String NomUtilisateur;
    private String DateDemande;
    private String CodeProjetDemande;
    private String ChargeDemande;
    private String ReferenceDemande;
    private String CommentaireDemande;
    private String idLaDemande;
    private List<CPPointDeControleEntity> ListPointControle;
    private Collection<CommentairesEntity> lesCommentaires;

    public String execute() throws Exception {

        System.out.println("ID de la demande renvoyé : " + idDemande);
        int idCPDemande = Integer.parseInt(idDemande);
        CPDemande = appliService.recupererCPDemandeById(idCPDemande);
        CPDemandeWithEtape = appliService.recuperCPDemandeWithEtapes(idCPDemande);
        System.out.println("nom de la demande : " + CPDemande.getTitreCPDemande());

        listeTypeDemandes = appliService.recupererType();
        ListPointControle = (List<CPPointDeControleEntity>) appliService.recupererCPPointControleDemande2(Integer.valueOf(idDemande));
        lesCommentaires = appliService.recupererCommentairesDemande(idCPDemande);
        
        return "success";
    }

    public String contacterAdmin() throws Exception {
        return "success";
    }

    public String refairedemandeForm() throws Exception {

        return SUCCESS;
    }

    /**
     * Accesseur de idDemande
     * 
     * @return le idDemande
     */
    public String getIdDemande() {
        return idDemande;
    }

    /**
     * Affectation de idDemande
     * 
     * @param idDemande idDemande à affecter
     */
    public void setIdDemande(String idDemande) {
        this.idDemande = idDemande;
    }

    /**
     * Accesseur de cPDemande
     * 
     * @return le cPDemande
     */
    public CPDemandeEntity getCPDemande() {
        return CPDemande;
    }

    /**
     * Affectation de cPDemande
     * 
     * @param cPDemande cPDemande à affecter
     */
    public void setCPDemande(CPDemandeEntity cPDemande) {
        CPDemande = cPDemande;
    }

    /**
     * Accesseur de cDDemande
     * 
     * @return le cDDemande
     */
    public CDDemandeEntity getCDDemande() {
        return CDDemande;
    }

    /**
     * Affectation de cDDemande
     * 
     * @param cDDemande cDDemande à affecter
     */
    public void setCDDemande(CDDemandeEntity cDDemande) {
        CDDemande = cDDemande;
    }

    /**
     * Accesseur de cPDemandeWithEtape
     * 
     * @return le cPDemandeWithEtape
     */
    public CPDemandeEntity getCPDemandeWithEtape() {
        return CPDemandeWithEtape;
    }

    /**
     * Affectation de cPDemandeWithEtape
     * 
     * @param cPDemandeWithEtape cPDemandeWithEtape à affecter
     */
    public void setCPDemandeWithEtape(CPDemandeEntity cPDemandeWithEtape) {
        CPDemandeWithEtape = cPDemandeWithEtape;
    }

    /**
     * Accesseur de appliService
     * 
     * @return le appliService
     */
    public IAppliService getAppliService() {
        return appliService;
    }

    /**
     * Affectation de appliService
     * 
     * @param appliService appliService à affecter
     */
    public void setAppliService(IAppliService appliService) {
        this.appliService = appliService;
    }

    /**
     * Accesseur de listeTypeDemandes
     * 
     * @return le listeTypeDemandes
     */
    public Collection<String> getListeTypeDemandes() {
        return listeTypeDemandes;
    }

    /**
     * Affectation de listeTypeDemandes
     * 
     * @param listeTypeDemandes listeTypeDemandes à affecter
     */
    public void setListeTypeDemandes(Collection<String> listeTypeDemandes) {
        this.listeTypeDemandes = listeTypeDemandes;
    }

    /**
     * Accesseur de type
     * 
     * @return le type
     */
    public String getType() {
        return type;
    }

    /**
     * Affectation de type
     * 
     * @param type type à affecter
     */
    public void setType(String type) {
        this.type = type;
    }

    /**
     * Accesseur de nomDemande
     * 
     * @return le nomDemande
     */
    public String getNomDemande() {
        return NomDemande;
    }

    /**
     * Affectation de nomDemande
     * 
     * @param nomDemande nomDemande à affecter
     */
    public void setNomDemande(String nomDemande) {
        NomDemande = nomDemande;
    }

    /**
     * Accesseur de nomUtilisateur
     * 
     * @return le nomUtilisateur
     */
    public String getNomUtilisateur() {
        return NomUtilisateur;
    }

    /**
     * Affectation de nomUtilisateur
     * 
     * @param nomUtilisateur nomUtilisateur à affecter
     */
    public void setNomUtilisateur(String nomUtilisateur) {
        NomUtilisateur = nomUtilisateur;
    }

    /**
     * Accesseur de dateDemande
     * 
     * @return le dateDemande
     */
    public String getDateDemande() {
        return DateDemande;
    }

    /**
     * Affectation de dateDemande
     * 
     * @param dateDemande dateDemande à affecter
     */
    public void setDateDemande(String dateDemande) {
        DateDemande = dateDemande;
    }

    /**
     * Accesseur de codeProjetDemande
     * 
     * @return le codeProjetDemande
     */
    public String getCodeProjetDemande() {
        return CodeProjetDemande;
    }

    /**
     * Affectation de codeProjetDemande
     * 
     * @param codeProjetDemande codeProjetDemande à affecter
     */
    public void setCodeProjetDemande(String codeProjetDemande) {
        CodeProjetDemande = codeProjetDemande;
    }

    /**
     * Accesseur de chargeDemande
     * 
     * @return le chargeDemande
     */
    public String getChargeDemande() {
        return ChargeDemande;
    }

    /**
     * Affectation de chargeDemande
     * 
     * @param chargeDemande chargeDemande à affecter
     */
    public void setChargeDemande(String chargeDemande) {
        ChargeDemande = chargeDemande;
    }

    /**
     * Accesseur de referenceDemande
     * 
     * @return le referenceDemande
     */
    public String getReferenceDemande() {
        return ReferenceDemande;
    }

    /**
     * Affectation de referenceDemande
     * 
     * @param referenceDemande referenceDemande à affecter
     */
    public void setReferenceDemande(String referenceDemande) {
        ReferenceDemande = referenceDemande;
    }

    /**
     * Accesseur de commentaireDemande
     * 
     * @return le commentaireDemande
     */
    public String getCommentaireDemande() {
        return CommentaireDemande;
    }

    /**
     * Affectation de commentaireDemande
     * 
     * @param commentaireDemande commentaireDemande à affecter
     */
    public void setCommentaireDemande(String commentaireDemande) {
        CommentaireDemande = commentaireDemande;
    }

    /**
     * Accesseur de idLaDemande
     * 
     * @return le idLaDemande
     */
    public String getIdLaDemande() {
        return idLaDemande;
    }

    /**
     * Affectation de idLaDemande
     * 
     * @param idLaDemande idLaDemande à affecter
     */
    public void setIdLaDemande(String idLaDemande) {
        this.idLaDemande = idLaDemande;
    }

	public List<CPPointDeControleEntity> getListPointControle() {
		return ListPointControle;
	}

	public void setListPointControle(List<CPPointDeControleEntity> listPointControle) {
		ListPointControle = listPointControle;
	}

	public Collection<CommentairesEntity> getLesCommentaires() {
		return lesCommentaires;
	}

	public void setLesCommentaires(Collection<CommentairesEntity> lesCommentaires) {
		this.lesCommentaires = lesCommentaires;
	}

}
